[C] Arquivos e Stat
Publicado por Enzo de Brito Ferber (última atualização em 23/09/2010)
[ Hits: 8.250 ]
Homepage: http://www.maximasonorizacao.com.br
Programa simples mostrando como usar a função stat(), e como manipular aquivos de uma forma bem simples. Ponteiros também são usados.
Baixe:
$ tar -xzvf loadfile.tar.gz
$ cd loadfile
$ ./loadfile text
;)
[]'s
/* loadfile.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> int main ( int argc, char *argv[] ) { char *fullfile, *p, *p2, c ; struct stat fileinfo; FILE *openfile; if ( argc < 2 ) { printf ( "[*] Usage: %s <file>\n", argv[0] ); exit ( EXIT_FAILURE ); } /* read-binary permission */ openfile = fopen ( argv[1], "rb" ); if ( !openfile ) { printf ( "[*] Can't open file %s\n", argv[1] ); exit ( EXIT_FAILURE ); } /* file info for file size */ if ( stat ( argv[1], &fileinfo ) == -1 ) { printf ( "[*] Can't stat() file %s\n", argv[1] ); exit ( EXIT_FAILURE ); } /* alloc memory for the pointer * * fileinfo.st_size = size of the file in bytes */ fullfile = ( char * ) malloc ( fileinfo.st_size * sizeof ( char )); if ( !fullfile ) { printf ( "[*] Can't malloc() %d bytes\n", fileinfo.st_size ); exit ( EXIT_FAILURE ); } /* To view all the resources of the stat structure: * * $ man stat */ printf ( "File info:\n" ); printf ( "UID : %d\n", fileinfo.st_uid ); printf ( "GID : %d\n", fileinfo.st_gid ); printf ( "Size: %d bytes\n", fileinfo.st_size ); printf ( "Mode: %8.8x\n", fileinfo.st_mode ); /* reference pointer */ p = fullfile; while ( 1 ) { if ( feof ( openfile )) break; fscanf ( openfile, "%c", &(*(p++)) ); } /* print file */ p2 = fullfile; while ( fullfile < p ) putchar ( *(fullfile++) ); /* put back in place what you use */ free ( p2 ); fclose ( openfile ); return 0; }
ListDir - Um listador de diretórios
Cadastro de arquivo usando ncurses como menu
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (3)
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)
Melhorando a precisão de valores flutuantes em python[AJUDA] (8)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta